Activiti 支持 JUnit 3和4进行单元测试。使用 JUnit 3时, 必须集成 org.activiti.engine.test.ActivitiTestCase。它通过保护的成员变量提供 ProcessEngine 和服务,在测试的 setup() 中, 默认会使用classpath 下的 activiti.cfg.xml 初始化流程引擎。 想使用不同的配置文件,可以重写 getConfigurationResource() 方法。 如果配置文件相同的话,对应的流程引擎会被静态缓存, 就可以用于多个单元测试。
把这些放在一起,JUnit 3 测试看起来像这样。
下面的代码演示了 JUnit 4 单元测试并使用了 ActivitiRule 的例子。
@Rule
public ActivitiRule activitiRule = new ActivitiRule();
public void ruleUsageExample() {
RuntimeService runtimeService = activitiRule.getRuntimeService();
runtimeService.startProcessInstanceByKey("ruleUsage");
assertEquals("My Task", task.getName());
taskService.complete(task.getId());
assertEquals(0, runtimeService.createProcessInstanceQuery().count());